home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / lib / xephem / xephem.hlp < prev   
Text File  |  1994-07-13  |  65KB  |  1,331 lines

  1. @Intro
  2. Xephem is a program that computes ephemerides for all the planets, some of
  3. their moons, plus any two user-defined objects.
  4.  
  5. In addition to information in numeric form, xephem displays simple schematic
  6. views of Saturn, Jupiter, Mars, Luna and Earth as well as maps of the night
  7. sky and the solar system. The sky and solar system maps support labeling and
  8. trailing, and the solar system can be shown as a stereo pair.
  9.  
  10. Xephem can compute information on demand or time can be set to increment
  11. automatically. In this way a series of computations and movies can be
  12. generated unattended.
  13.  
  14. Quantitative information available about each object includes RA and Dec
  15. precessed to any epoch, local azimuth and altitude, heliocentric
  16. coordinates, distance from sun and earth, solar elongation, angular size,
  17. visual magnitude, illumination percentage, local rise, transit and set
  18. times, length of time up, constellation, and angular separations between all
  19. combinations of objects.
  20.  
  21. Observing circumstance information includes UTC and local date and time,
  22. local sidereal time, times of astronomical twilight and length of night,
  23. local temperature, pressure and elevation above sea level for the refraction
  24. model and a monthly calendar.
  25.  
  26. RA/Dec calculations are geocentric and may include the effects of light
  27. travel time, nutation, aberration and precession.  Alt/Az and
  28. rise/set/transit and, optionally, angular separation calculations are
  29. topocentric and include the additional effects of parallax and refraction.
  30.  
  31. Plot and listing files of selected field values may be generated as the
  32. program runs.  The plot files are full precision floating point values in
  33. ASCII intended for export to other plotting programs. Xephem includes simple
  34. quick-look facilities to view plot files. The listing files are tables
  35. formatted for more general human reading.
  36.  
  37. Xephem can read databases of objects. The objects may be fixed or specified
  38. via heliocentric elliptical, hyperbolic or parabolic orbital elements to
  39. accommodate solar system objects such as asteroids or comets.  These are
  40. then available as candidate values for the user defined objects and all of
  41. them can be displayed in the sky map subject to type and magnitude filters.
  42. The format of the database file is described in the Help for the DB menu.
  43.  
  44. @MainMenu
  45. Across the top of the Main menu is a menu bar to allow selecting the
  46. principle display menus of xephem. These may be turned on in any desired
  47. combination.  Each menu will have its own Close button or it may be closed
  48. by reselecting it from the main menu bar.
  49.  
  50.     The "File" pulldown is a few miscellaneous controls. The "Reset" entry will
  51.     return xephem to its initial state. The "Messages" entry toggles whether
  52.     the general messages menu is displayed. Note that all messages that go
  53.     to this menu also appear on stdout regardless of whether the menu is
  54.     up.  In order to be sure it is seen, the "messages" menu is always moved
  55.     to the top of the window stack and placed under the pointer whenever it
  56.     is up and new messages are added to it. The "Quit" entry exits xephem.
  57.  
  58.     The "View" pulldown toggles any of the several xephem displays.
  59.  
  60.     The "Control" pulldown toggles the plotting, listing and searching control
  61.     menus.
  62.  
  63.     The "ObjX/Y..." pushbutton toggles the menu that allows you to define
  64.     the user defined objects, ObjX and ObjY. Said menu also allows you to
  65.     inspect each item currently in the xephem database.
  66.  
  67.     The "DB..." pushbutton toggles the menu that allows to add or replace
  68.     entries in the xephem database from files of database objects.
  69.  
  70.     The "Preferences" pulldown lists the available preferences that may be
  71.     changed at runtime. The options currently available include whether the
  72.     algorithms are chosen for accuracy or speed; dates are shown and entered
  73.     in month/day/year, year/month/day or day/month/year format; and whether
  74.     local topocentric circumstances are given in English or Metric units of
  75.     measure. Each of these may be initialized via the XEphem resources; see
  76.     the sample XEphem.ad resource file for details.  When the Algorithm
  77.     setting is for Fast, a simpler precession algorithm is used and there
  78.     is no correction for light travel time or nutation.  Whenever the
  79.     preferences are changed at run time, all effected fields are immediately
  80.     recalculated.
  81.  
  82.     Finally, the "Help" pulldown provides access to several general areas of
  83.     information.
  84.  
  85. The next row is a status line that contains a short description of what
  86. xephem is doing at the moment with regards to its looping behavior.
  87.  
  88. Below that is room for the NEW CIRCUMSTANCES message. When you change a
  89. field that would invalidate any of the other fields the message NEW
  90. CIRCUMSTANCES appears near the top of the menu. This will remain until at
  91. least one screen update loop occurs.
  92.  
  93. See the Help for "Operation" for more information on changing the fields in
  94. the Main menu and controlling xephem's runtime behavior. See the Help for
  95. "Triad formats" for more information on these formats.
  96.  
  97. Follows is a description of each of the display fields in the Main menu.
  98.  
  99.  UTC Date      The UTC date.
  100.  UTC Time      The UTC time.
  101.  Julian        The current Julian date, to about 1-second accuracy.
  102.  Sidereal      The sidereal time for the current time and location..
  103.  TZ Name       The local timezone name.  The name field may be changed to any
  104.                three-character mnemonic.
  105.  TZ Offset     Hours local time is behind UTC, ie, positive west or negative
  106.                east of Greenwich.
  107.  Local Date    The local date. This is UTC minus the value of TZ Offset.
  108.  Local Time    The local time. This is UTC minus the value of TZ Offset.
  109.  
  110.  Twilight Dip  The number of degrees the sun is below the horizon we wish to
  111.                call twilight. This sets the value for the following fields.
  112.  Dawn          Local time when the sun center is "Twilight dip" degrees below
  113.                the horizon before sunrise today.
  114.  Dusk          Local time when the sun center is "Twilight dip" degrees below
  115.                the horizon after sunset today.
  116.  Night Length  Length of astronomical night, ie, Dawn - Dusk.  If this and the
  117.            display for Dawn and Dusk are shown as "-----", it means the sun
  118.            is either always below or always above "Twilight dip" degrees
  119.            below the horizon on this particular day.
  120.  
  121.  N Steps       The number of times the display will be updated (time advanced
  122.                by Step Size each step) automatically.
  123.  Step Size     The amount of time UTC (and its derivatives) is incremented
  124.            each loop. 
  125.  Pause         Number of seconds to pause between screen updates. This is
  126.            used mainly to set up for free-running unattended operation.
  127.            Pausing is not done when plotting or searching is on.
  128.  
  129.  Latitude      Location latitude, positive degrees north of equator.
  130.  Longitude     Location longitude, positive degrees west of Greenwich meridian.
  131.  Elevation     Local elevation of the ground above sea level, in feet. (see
  132.            implementation notes). Used in refraction correction.
  133.  Temperature   Local surface air temperature, in degrees F. Used in refraction
  134.            correction.
  135.  Atm Pressure  Local surface air pressure, in inches of mercury. Used in
  136.            refraction correction.
  137.  Epoch         The epoch, to the nearest 0.1 years, to which the ra/dec
  138.            fields are precessed.  This says (OfDate) when coordinates
  139.            are not precessed, ie, are in the epoch of date.
  140.  
  141. The calendar on the right of the Main menu is based on UTC. Selecting a date
  142. button will set the date. Unlabeled buttons before the first of the month
  143. and after the last of the month work as expected to also imply a change in
  144. month or year as necessary. The month and year buttons pop up selections
  145. that allow these to be changed as well. In no case does using the calendar
  146. change the current time (just the date).
  147.  
  148. @Operation
  149. When xephem starts it sets the initial values of several fields from several
  150. X resource values. See the Help for "Initialization" for details of the
  151. format of these resources. Xephem then draws all fields on the Main screen
  152. with their initial values.  The program then loops advancing time each step,
  153. by some amount you may control, and updating all fields each loop.
  154.  
  155. There are three fields that control this looping behavior. "N Steps"
  156. controls the number of steps, "Step Size" the amount of time to add each
  157. step, and "Pause" is the amount of real seconds to pause between steps. When
  158. looping is in effect, the bottom button on the Main menu says "Stop". (Note
  159. that Xephem does not pause between steps when plotting or searching is on.)
  160. When the number of steps goes to 0 or the "Stop" button is selected, the
  161. looping stops and the button is relabeled "Update".
  162.  
  163. Note that when looping with Pause set to 0, most numeric field data are not
  164. drawn in order to speed up the display. These values are always updated
  165. internally, however. and may safely be used for plotting, searching or
  166. listing. This is true even if the menu that displays the information is
  167. closed.
  168.  
  169. Most fields may be changed by selecting them. A prompt dialog with a brief
  170. explanation of the field will be presented. A new value may be typed into
  171. the text field provided. If "Ok" is selected the new value will be used; if
  172. "Cancel" is selected the field will be left unchanged. In either case, the
  173. prompt dialog goes away. Some of the dialogs have an extra button as a handy
  174. way to enter frequently used values for the field.
  175.  
  176. When you have changed a field that would invalidate any of the other fields
  177. the message NEW CIRCUMSTANCES appears near the top of the Main menu.  This
  178. will remain until at least one screen update loop occurs.  If you change any
  179. field that causes new circumstances, the "Step Size" value is not added to
  180. the current time after the first loop. Note also that after a series of
  181. loops, "N Steps" is automatically reset to 1 from 0 so "Update" will do
  182. exactly one loop again.
  183. @Credits
  184. First and foremost, I want to thank my lovely and loving wife, Kathy, for
  185. freely accepting me as I am and for encouraging and supporting my passion for
  186. astronomy in general and writing xephem in particular.
  187.  
  188. Many formulas and tables are based, with permission, on material found in:
  189. "Astronomy with your Personal Computer" by Dr. Peter Duffett-Smith,
  190. Cambridge University Press, (c) 1985.
  191.  
  192. Constellation algorithm is from a paper by Nancy G. Roman, "Identification
  193. of a constellation from a position", Publications of the Astronomical
  194. Society of the Pacific, Vol.  99, p.  695-699, July 1987.
  195.  
  196. The high-precision precession routine is from 1989 Astronomical Almanac, as
  197. interpreted by Craig Counterman. Mr. Counterman also deserves the credit for
  198. providing the initial encouragement to write an astronomical tool
  199. specifically for X Windows.
  200.  
  201. The Earth map is derived from one of the demos that comes with gnuplot,
  202. Copyright (C) 1986, 1987, 1990, 1991   Thomas Williams, Colin Kelley.
  203.  
  204. The moon bitmap is derived from xphoon, Copyright (C) 1988 by Jef Poskanzer
  205. and Craig Leres.
  206.  
  207. Jupiter's moons based on information in "Astronomical Formulae for
  208. Calculators" by Jean Meeus. Richmond, Va., U.S.A., Willmann-Bell, (c) 1982.
  209.  
  210. Saturn's moons based on code supplied by Doug McDonald.
  211.  
  212. Many test cases were gleaned from the pages of Sky and Telescope, (C) Sky
  213. Publishing Corp.
  214.  
  215. I thank all the organizations behind the incredible Internet for its
  216. maintenance and free and easy access.
  217.  
  218. National Space Science Data Center and the Institute for Theoretical
  219. Astronomy of the Russian Academy of Sciences for the asteroid database and
  220. the NSSDC and the Smithsonian Astrophysical Observatory for the SAO
  221. database.
  222.  
  223. The members of the Saguaro Astronomy Club for the preparation and free
  224. distribution of their deep-sky database.
  225.  
  226. Bright stars are from the Yale Bright Star catalog, as edited by Robert Tidd
  227. (inp@violet.berkeley.edu) and Alan Paeth (awpaeth@watcgl.waterloo.edu). Any
  228. errors in conversion to the ephem.db format are strictly mine.
  229.  
  230. Special thanks to all the folks over the years who have provided innumerable
  231. ideas, suggestions and bug reports, both for xephem and its ancestor,
  232. ephem.  A major benefit to writing and distributing these programs has been
  233. the chance to make friends from around the world.
  234.  
  235. @Initialization
  236. Most of the fields in the Main xephem menu can be initialized from the X
  237. resources for class "XEphem".  Of course, you may still change any field
  238. while the program is running too; these just set the initial conditions.
  239.  
  240. Because of the way unspecified triad components are left unchanged (see
  241. help on Triad Formats) always specify all three for all such entries. For
  242. example, to initialize the longitude to zero degrees, say 0:0:0, not just 0.
  243.  
  244.  UD        initial UTC date, such as 10/20/1988, or "Now" to use the computer
  245.            clock.
  246.  UT        initial UTC time, such as 12:0:0, or "Now" to use the computer clock.
  247.  JD        time specified as a Julian Date.
  248.  TZone     hours the local time is behind utc, such as 5:0:0.  You need not
  249.            set this if you use "Now" for UT or UD.
  250.  TZName    name of the local time zone, such as CDT. 3 chars max.  You need
  251.            not set this if you use "Now" for UT or UD. This is purely a text
  252.            label; xephem makes no attempt to compute anything from this label,
  253.            such as a UTC offset.
  254.  Long      longitude, in degrees west of Greenwich, in the form d:m:s.
  255.  Lat       latitude, in degrees north of the equator, in the form d:m:s.
  256.  Elevation height above sea level, in feet or meters, such as 800. Used to
  257.        compute parallax of solar system objects.
  258.  Temp      air temperature, in degrees F or C, such as 60.
  259.  Pressure  air pressure, in inches of Mercury or mBar, such as 29.50.
  260.        Temp and Pressure are used to compute refraction when the AdpHzrn
  261.        option is active; see the Help for the Data setup table.
  262.  StepSize  the time increment between screen updates, such as "1" to give
  263.            one hour updates. this can be a specific amount or RTC to use
  264.            the system clock as a real-time source. You may also specify a
  265.            time in days by appending a D (or d) after the number or a time
  266.            in sidereal days by appending an s (or S) after the number.
  267.  NSteps    number of times program will loop automatically.
  268.            see the discussion under Program Operation.
  269.  Epoch     this sets the desired ra/dec precession epoch. you can put any
  270.            date here (use decimal form, such as 1992.5) or "EOD" to use the
  271.        current instant ("Epoch of Date").
  272.  Pause     The number of seconds to pause between calculation steps.
  273.  TwilightDip Number of degrees the sun is below the horizon that you want to
  274.        define as being the end of "twilight"; must be at least 0.
  275. @Date/time
  276. Xephem uses many values that get are entered in some variation of X/Y/Z form.
  277. We call this a "triad" input format.
  278.  
  279. Times are displayed and entered in h:m:s format.  If you pick a time field
  280. to change it. Any of the h, m, and s components that are not specified are
  281. left unchanged from their current value.  For example, 0:5:0 set hours to 0,
  282. minutes to 5, seconds to 0, whereas :5 sets minutes to 5 but leaves hours
  283. and seconds unchanged.  A negative time is indicated by a minus sign (-)
  284. anywhere before the first digit.
  285.  
  286. Dates are displayed and entered in any one of month/day/year, year/month/day
  287. or day/month/year form. A preference selection on the main menu, and controlled
  288. by the XEphem resource DateFormat, selects which form is currently being used.
  289.  
  290. As with time, components omitted when entering a new value retain the current
  291. value.  For example, if the current date is 10/20/1988 and you type 20/30
  292. the new date will become 20/30/1988. If you then type //2000 the new date will
  293. become 20/30/2000. Note you must type the full year since the program is
  294. accurate over several centuries either side of 1900.
  295.  
  296. If you change the date, the time (ie, partial day) will not change.
  297.  
  298. Negative years indicate BC dates. For example, Jan 1, 1 BC is given as
  299. 1/1/-1.  There is no year 0.
  300.  
  301. Two other ways to set the date are supported for compatibility with some
  302. published comet ephemerides.  You may enter the day portion as a floating
  303. point number. When you set the day this way, the time will also change to
  304. correspond to the fractional portion of the day.
  305.  
  306. You may also enter a date as a decimal year, as in 1990.12345. Also, when
  307. the date format preference is set to M/D/Y or D/M/Y the decimal point may be
  308. omitted if the value is not a reasonable month or date value, respectively.
  309. Decimal years are useful in interpreting plot files that include a date field,
  310. since date fields are stored in plot files as decimal years. Any input that
  311. includes exactly one decimal point is assumed to be a decimal year.
  312.  
  313. Other parameters such as longitude, latitude and "Step Size" also fall into
  314. the general triad format. The same rules apply to these with respect to
  315. only having to set the portions that are being changed.
  316.  
  317. As a matter of typing convenience, the program accepts most any punctuation
  318. character as the separator in a triad; you don't have to type a perfect ":" or
  319. "/".
  320. @Notes
  321. 1) The program uses a horizontal plane tangent to the earth Elev feet above
  322. sea level as the horizon for all altitude calculations, rise/set events, etc. 
  323. Due to Earth's curvature, this is not the same as the angle up from the local
  324. horizon unless the observer is directly on the ground. The effect can be found
  325. from:
  326.  
  327.      sin(a)**2 = (h**2 + 2Rh) / (R+h)**2
  328.  where:
  329.      R = radius of earth
  330.      h = height above ground (same units as R)
  331.      a = increase in altitude
  332.  
  333. The effect can be significant. For example, the effect is more than two arc
  334. minutes at a height of 5 feet.
  335.  
  336. 2) The accuracy of xephem can not be specifically stated since the Duffett-
  337. Smith book does not warrant its planet position polynomials to any given
  338. degree. I know for sure that better accuracy could be achieved if xephem
  339. used TDT but I have not yet decided on a suitable algorithm.  Allowing for
  340. this manually, comparisons with the Astronomical Almanac are often within a
  341. very few arcseconds.
  342.  
  343. 3) The sun-moon distance is the solution for the third side of a planar
  344. triangle whose two other sides are the earth-moon distance and earth-sun
  345. distance separated by the angle of elongation.
  346.  
  347. 4) The calendar shows UTC, including dates of new and full moon.
  348.  
  349. 5) The visual magnitudes for the planets take into account the phase of the
  350. illumination; the magnitudes for other solar system objects do not.
  351.  
  352. 6) Ideas:
  353.  + add tick marks (third axis?) to plots.
  354.  + write a tool to find g/k from a set of predicted magnitudes.
  355.  + search for occultations with all fixed objects.
  356.  + add explicit searching for solar and lunar eclipses.
  357.  + do more moons.
  358.  + add a shorthand for synodic step sizes.
  359.  + add e/w flip option to all displays.
  360.  + use FileSelectionBox to choose plot, listing, and database files.
  361.  + think of a way to display decimal years in plots as m/d/y.
  362.  + incorporate Terrestrial Dynamical Time (known as Ephemeris Time prior to
  363.    1984).  TDT is about 57 seconds ahead of UT1 in 1990.
  364.  + account for lunar augmentation.
  365.  + add undo for plot and listing selections.
  366.  + use a progress meter during long operations, not just the watch cursor.
  367.  + let xephem put things in the root window.
  368.  + add lots more stuff to the Earth display, including interactive selection
  369.    and tracking of lat/long and allow different viewpoints.
  370.  + compute and display libration info in moon view.
  371.  
  372. Bugs:
  373.  - %0*.* in f_sexad() doesn't work on some systems (needs 0 deleted)
  374.  - should jup moon +y be S???
  375.  - the built-in elements for pluto need to be updated. the elements for pluto
  376.    in the included ephem.db database sampler are more accurate.
  377.  - allow for decimal seconds in format converters.
  378. @Plot
  379. This menu controls the plot generation and display functionality of xephem.
  380. You may select most numeric information displayed by xephem, in pairs, to
  381. form x/y coordinates of a plot. You may select up to ten such pairs. You
  382. then select a file to contain the plot information. Xephem adds one line of
  383. information to the file for each x/y pair each time iteration step. Xephem
  384. can also plot any such file on the screen. The file format is compatible
  385. with the character version of xephem, ephem.
  386.  
  387. Selecting data to plot:
  388.  
  389. Select the "Select fields" toggle button to make each field in the other
  390. menus that are eligible for plotting appear as a pushbutton. Select each
  391. such button as desired to form the x or y component of a plot. As you make
  392. the selections, they are listed in the menu. You may also associate a
  393. one-character tag with each line. These tags will be included in the plot
  394. display for identification later. Once all the field choices have been made
  395. you may return all the menus to their normal operational appearance by
  396. reselecting the same toggle button.
  397.  
  398. Specifying the plot file name:
  399.  
  400. Type the name of the file to be used to contain the plot information in the
  401. text field provided. When xephem first needs to write to the file, it will
  402. first check for the existence of the file and, if it already exists, ask
  403. whether you wish to append to the file or overwrite it.
  404.  
  405. The default plot file name may be specified as the value of the resource
  406. named "XEphem*Plot*Filename.value". If this resource is not specified then
  407. the file name will be "ephem.plt".
  408.  
  409. Specifying a plot file title:
  410.  
  411. Enter a short title for the plot information in the text are provided.  When
  412. xephem first writes to a plot file, it will place the contents of the title
  413. text area, if it is not empty, into the file as a comment. All lines within
  414. a plot file that do not begin with an alphanumeric character are considered
  415. comments and are ignored. If the first line of a file is a comment, xephem
  416. will use it as the title for the plot when it displays the plot.
  417.  
  418. Generating the plot entires:
  419.  
  420. Once the fields have been specified and the plot file named and titled, you
  421. may select the "Plot to file" toggle button when ready. Now each time xephem
  422. goes through one iteration the values you have selected and their tags will
  423. be written to the plot file. Note that when plotting is activated, xephem
  424. does not update the screen until the "N Steps" count goes to 1. This greatly
  425. speeds the creation of plot files by avoiding screen updates. If you wish to
  426. watch each iteration, set "N Steps" to 1 and select the "Update" button
  427. manually for each iteration. Once all the desired data has been entered into
  428. the plot file, toggle the plot button back off to flush all data and close
  429. the file.
  430.  
  431. The menus that contain each of the fields used in the plot need not be
  432. visible while the plot is being generated.
  433.  
  434. Viewing plot files:
  435.  
  436. Existing plot files may be viewed by entering their name into the text field
  437. provided and selecting the "Show plot file" pushbutton. As many different
  438. plot files may be viewed simultaneously as desired. Each plot has separate
  439. controls for flipping the X and Y axes and for turning on and off a
  440. reference coordinate grid.
  441.  
  442. The xephem distribution kit includes a sample plot file of the analemma.
  443. @Listing
  444. This menu controls the list generation functionality of xephem.  The fields
  445. you select define columns of a table written to a file as xephem runs.
  446. These columns look exactly like their corresponding fields on the xephem
  447. menus and so are more familiar and readable than the entries in plot files.
  448. They are designed to be used in further text processing operations or
  449. printed as-is. Two spaces are placed between each column.
  450.  
  451. Selecting data to list:
  452.  
  453. Select the "Select fields" toggle button to make each field in the other
  454. menus that are eligible for listing appear as a pushbutton. Select each such
  455. button as desired to form each column of the listing. As you make the
  456. selections, they are listed in the menu. Once all the column choices have
  457. been made you may return all the menus to their normal operational
  458. appearance by reselecting the same toggle button.
  459.  
  460. Specifying the listing file:
  461.  
  462. Type the name of the file to be used to contain the listing in the text
  463. field provided. When xephem first needs to write to the file, it will first
  464. check for the existence of the file and, if it exists, ask whether you wish
  465. to append to the file or overwrite it.
  466.  
  467. The default listing file name may be specified as the value of the resource
  468. named "XEphem*List*Filename.value". If this resource is not specified then
  469. the file name will be "ephem.lst".
  470.  
  471. Specifying a listing file title:
  472.  
  473. All lines within a listing file that do not begin with an alphanumeric
  474. character are considered comments and are ignored.  When xephem first writes
  475. to a listing file, it will place the contents of the title text area, if it
  476. is not empty, into the file as a comment for your convenience.
  477.  
  478. Generating the listing entires:
  479.  
  480. Once the fields have been specified and the listing file named and titled,
  481. if desired, select the "List to file" toggle button. Now each time xephem
  482. goes through one iteration the values you have selected will be written to
  483. the file. Note that when listing is activated, xephem does not update the
  484. screen until the "N Steps" count goes to 1. This greatly speeds the creation
  485. of listing files by avoiding screen updates. If you wish to watch each
  486. iteration, set "N Steps" to 1 and select the "Update" button manually for
  487. each iteration. Once all the desired data have been entered into the listing
  488. file, toggle the list button back off to flush all data and close the file.
  489.  
  490. Menus that contain each of the fields used in the listing need not be
  491. visible for the fields to be listable.
  492. @Search
  493. This menu controls the automatic searching facility. You define an arithmetic
  494. or boolean function, using most of the fields xephem displays, then xephem
  495. will automatically evaluate the function and adjust the time on each
  496. iteration to search for the goal.
  497.  
  498. To perform a search:
  499.    enter a function,
  500.    compile it,
  501.    select a goal,
  502.    set the desired accuracy,
  503.    enable searching,
  504.    start the search process.
  505.  
  506. Each of these steps is described below.
  507.  
  508. Entering the function:
  509.  
  510. The function may be any arithmetic expression, in C-language syntax.  All of
  511. C's comparison, logical and arithmetic operators are supported as well as
  512. several common arithmetic functions. Here is the complete list:
  513.  
  514.   + - * / && || > >= == != < <=
  515.   abs sin cos tan asin acos atan degrad raddeg pi log log10 exp sqrt pow atan2
  516.  
  517. The function is entered into the text line provided. It may utilize most of
  518. the fields from the other xephem menus. Press the "Enable field buttons"
  519. button to make each available field a button. Where ever a field is desired
  520. in the function, position the text insertion cursor at the desired position
  521. and select the field; its name will be inserted into the function text. When
  522. you are finished defining the function, turn off the field button appearance
  523. by selecting the "Enable..." button again.  Once you get to know the names
  524. of the fields you may also enter them manually, if you prefer.
  525.  
  526. Compiling the function:
  527.  
  528. Once the function has been entered as desired, it must be compiled by
  529. selecting the "Compile" button (or by pressing the Return or Enter key on
  530. your keyboard).  If there are any errors, a diagnostic message will appear
  531. just below the function. Whenever a search function has been successfully
  532. compiled, the message will read <no compile errors>. Each time a function
  533. is successfully compiled, xephem updates all fields and evaluates the
  534. function. As explained below, this can be used as a sort of "astronomical
  535. calculator" even when not actually searching.
  536.  
  537. Selecting a search goal:
  538.  
  539. You may choose from any of three evaluation algorithms, as selected by the
  540. trio of radio buttons. "Find extreme" will search for a maxima or minima of
  541. the function. "Find 0" will search for a time when the function evaluates to
  542. zero.  "Binary" will keep incrementing time by "Step Size" (in the main
  543. menu) until the state of the function changes, then do a binary search to
  544. find the exact time when the function changes state. Binary search
  545. interprets a function that evaluates to zero to be in one state and all
  546. other values to be the opposite state. Generally, binary functions are
  547. comprised of logical operators at their outermost expression levels.
  548.  
  549. Specifying the desired accuracy:
  550.  
  551. Searching will automatically stop when the time changes by less than the the
  552. accuracy value. Note that this method of detecting convergence is not based
  553. on the value of the search function itself. To change the desired accuracy
  554. press the pushbutton showing the current accuracy next to the "Accuracy"
  555. label and enter a new value in the dialog.
  556.  
  557. Performing the search:
  558.  
  559. Once the function is defined and it compiles without errors, you may enable
  560. searching by selecting the button at the top labeled "Searching is Active".
  561. Then, each time "Update" is selected on the main menu the search proceeds until
  562. either "N Steps" iterations have occurred or until "Step Size" becomes less
  563. than Accuracy. The initial search time and step size are set from the main
  564. menu, and are adjusted automatically as the search proceeds. Note that by
  565. setting "N Steps" to 1 and repeatedly selecting Update you can effectively
  566. single-step the search process. Search control will automatically turn off when
  567. convergence is detected, the function is edited or you may turn it off manually
  568. at any time by toggling the button labeled "Search is Active" back off.
  569.  
  570. Additional notes on searching:
  571.  
  572. When selecting fields for plotting or listing a button appears labeled "Use
  573. for plotting". You may select this button to use the evaluated search
  574. function as an item in the plot or listing feature. Note that the search
  575. function may be used in plotting and listing whether or not searching is
  576. enabled.
  577.  
  578. The menus that contain each of the fields used in the search function need
  579. not be visible for the fields to used for searching.
  580.  
  581. The "Close" button removes the search control menu from the screen; it does
  582. not effect actual search operation in any way.
  583.  
  584. A successfully compiled search function is evaluated each time xephem updates.
  585. Whenever a search function is compiled it is also evaluated using freshly
  586. updated values. In this way, the Search menu can actually be used as an
  587. arbitrary "astronomical calculator" at any time. In each of these cases you
  588. need not be actually `searching' to use these feature.
  589.  
  590. Hint:
  591.  
  592. Searching periodic functions can lead to solutions far from the intended
  593. range. You will get best results if you can start the search near the
  594. expected answer and with a small step size that bounds the solution. You can
  595. use the plotting feature to study a function and get an idea of the
  596. solution, then use the automatic searching feature to zero in.
  597. @Data Table
  598. This is a table of information about each planet, Sol, Luna, and any two
  599. user defined objects, ObjX and ObjY. Each data item occupies one column in
  600. the table and each object occupies one row.
  601.  
  602. Select the "Setup" button to configure the table rows and columns as
  603. desired.  The initial configuration can be set from the X resources
  604. DataSelRows and DataSelMiscCols. See the sample XEphem.ad resource file for
  605. examples.
  606.  
  607. When any columns related to rising or setting are active boxes at the bottom
  608. will indicate whether the Standard or Adaptive refraction model is in
  609. effect and whether the times refer to the center or the upper limb of the
  610. object. Similarly, when any of the separation columns are active a box will
  611. be present to indicate whether the separation is from a geocentric or
  612. topocentric point of view. See the help for the "Setup" menu for more
  613. information about these modes.
  614.  
  615. Various odd ball rising, transit and setting conditions are accounted for
  616. and marked as follows when they occur:
  617.  
  618.  NoRise      up some time but never rises, as such, today.
  619.  NoSet      up some time but never sets, as such, today.
  620.  NoTran      up some time but doesn't transit, as such, today.
  621.  CirPol      object is circumpolar (never goes below horizon) today.
  622.  NvrUp      object is never up today.
  623.  XX:XX+      "+" appended to rise, transit or set times means the event occurs
  624.               twice today; the time given is the time of the first event.
  625.       "+" appended to "Hours Up" means it is still up at midnight.
  626.  
  627. Any of the information in this table may be plotted, listed or used in a
  628. search algorithm. See the help for these control functions for more details.
  629.  
  630. See the help for the "Setup" menu for a description of each field.
  631. @DataSelection Table
  632. This menu lets you configure which rows and columns will be in the Data
  633. Table.  When this menu first comes up it will be set to indicate the state
  634. of the Data Table. You may then manipulate the toggle buttons as desired. To
  635. actually change the Data Table to a new configuration select the "Apply"
  636. button.  "Ok" does the same thing but also closes this menu. "Close" just
  637. closes this menu without making any permanent changes. In addition to
  638. manipulating each item individually, each columns includes handy shortcut
  639. controls at the top to make changes to column as a whole.
  640.  
  641. The first column of this menu selects which rows will be present in the Data
  642. Table. The planets and the sun and moon are always in this column. If user
  643. defined objects ObjX or ObjY are defined then they will also be present and
  644. controllable from this column. See the help for the "ObjX/Y" menu for more
  645. information about user defined objects.
  646.  
  647. Entries in the remaining three columns in this menu control which columns
  648. will be present in the Data Table. They are grouped into three categories
  649. for convenience.
  650.  
  651. Column two controls miscellaneous basic information. The descriptions of
  652. each entry are as follows:
  653.  
  654.  Cns           name of the constellation in which the object appears.
  655.  R_A           apparent geocentric right ascension of object, precessed to
  656.            given epoch, in hours, minutes and decimal minutes.
  657.  Dec           apparent geocentric declination of object, precessed to
  658.            given epoch, in degrees and minutes.
  659.  Az            degrees eastward of true north for object.
  660.  Alt           degrees up from a horizontal plane that is Elevation feet above
  661.                sea level.
  662.  HeLong        true heliocentric longitude, in degrees.  Earth's is displayed
  663.                on the sun's line.  For the moon this is the geocentric
  664.            longitude.
  665.  HeLat         true heliocentric latitude, in degrees.  For the moon this is
  666.                the geocentric latitude.
  667.  EaDst         true distance from Earth center to object center, in AU, except
  668.                distance to the moon is in miles or km depending on the Units
  669.            preference.
  670.  SnDst         true distance from sun center to object center, in AU.
  671.  Elong         spherical angular separation between sun and given object,
  672.            calculated from the their geocentric ecliptic coordinates.
  673.            Note this is not just the difference in ecliptic longitude.
  674.            The sign, however, is simply sign(obj's longitude - sun's
  675.            longitude), ie, degrees east.  thus, a positive elongation
  676.            means the object rises after the sun.  This field is not
  677.            generally useful in searching for conjunctions because of
  678.            the discontinuous sign change that occurs at conjunction.
  679.  Size          angular size of object, in arc seconds.
  680.  VMag          visual magnitude of object.
  681.  Phase         percent of visible surface in sunlight. Note the moon phase
  682.            is calculated simplistically as just abs(elongation)/180*100
  683.            which can be a few degrees off... this means that because of
  684.            how elongation is defined it doesn't say 0 during new moon
  685.            (or 100 during full) except during close eclipses (maybe
  686.            that's a "feature"?).
  687.  
  688. Column three controls information related to rising, transiting, and
  689. setting.  These may be computed according to two options.
  690.  
  691. "StdRefr", which stands for "standard refraction", computes rising and setting
  692. based on the standard horizon refraction of 32 arc minutes. This agrees well
  693. will standard publications. "AdpRefr", which stands for "adaptive refraction",
  694. computes rising and setting based on a refraction model that used the actual
  695. atmospheric and topocentric circumstances displayed on the Main menu. This
  696. generally leads to accuracies well within one minute if all conditions are
  697. carefully entered.
  698.  
  699. "Limb" means that the rise and set circumstances are based on the location
  700. of the upper limb of the object. "Center" means that the circumstances are
  701. based on the location of the center of the object. (In fact, these allowances
  702. are only taken into account for the Sun and moon.)
  703.  
  704. Follows is a description of the Data Table columns controlled by the third
  705. Data Selection column:
  706.  
  707.  RiseTm
  708.  RiseAz   The local time and azimuth when the upper limb (or center) of the
  709.           object rises today.
  710.  TrnTm
  711.  TrnAlt   The local time and altitude when the object crosses the meridian
  712.           today, ie, when its azimuth is true south or, if no precession, when
  713.       the local sidereal time equals the object's right ascension.
  714.  SetTm
  715.  SetAz    The local time and azimuth when the upper limb (or center) of the
  716.           object sets today.
  717.  HrsUp    The number of hours the object is up today, that is, the difference
  718.       between the set and rise times.
  719.  
  720. Note that these times are for the current local day. See the description of
  721. "odd ball" circumstances that this definition can produce and how xephem
  722. reports them.
  723.  
  724. The last column in the Data Table setup menu controls for which objects
  725. angular separation is computed.  Each entry in the Data Table will be the
  726. angular separations between each pair of objects, in degrees.
  727.  
  728. The vantage point for the Separation values may be chosen. "Geocentric"
  729. ignores local conditions and gives the separation as seen from Earth
  730. center.  "Topocentric" uses the local conditions known to xephem.  The
  731. choice is particularly critical for lunar occultations, but the effect can
  732. be significant for the planets. Geocentric separations between objects and
  733. the sun will match the magnitude of the elongation given in the Data menu.
  734.  
  735. When ObjX or ObjY are defined, these will appear in the last column and
  736. separations between them and the other objects (in column 1) may be selected
  737. for display.
  738.  
  739. Note:
  740.  
  741. Searching over a period that will include the rise or set times of either
  742. object is generally better performed from the geocentric viewpoint.  The
  743. refraction effect of the topocentric viewpoint causes many arcminutes of
  744. rapid whiplash displacement as the objects rise and set that overlays the
  745. smooth celestial motion of the objects.  This rapid position variation can
  746. confuse the solver algorithms that expect fairly smooth functions.
  747. @Mars
  748. This menu displays the central meridian longitude of Mars, that is, the
  749. Martian meridian currently facing towards Earth.  This value may be selected
  750. for plotting, listing and searching as described in the help for these
  751. functions.
  752.  
  753. Also included in this menu is a simple schematic display of the Martian
  754. surface at the current time. I would like to find a map with a bit more
  755. detail.
  756.  
  757. @Earth
  758. This menu displays a simple map of the Earth oriented so that the subsolar
  759. point is centered. The subsolar point is the location on the Earth from which
  760. the sun appears to be directly overhead. Another way to interpret the display
  761. is to think of it as displaying exactly that portion of the Earth currently in
  762. sunlight. The subsolar point is marked with a cross.
  763.  
  764. The latitude and longitude of the current subsolar point are displayed and may
  765. be selected for plotting, listing or searching as described in the help for
  766. those functions.
  767.  
  768. It is interesting to set the step size to a few integral number of days and
  769. watch the change in latitude. Plotting latitude vs. longitude over the
  770. course of a year is equivalent to plotting the analemma.
  771.  
  772. Remember that the numeric information is not updated while looping with Pause
  773. set to 0.
  774. @Sky View
  775. This menu displays each object currently loaded in the xephem database with
  776. several display options, subject to filtering by type and magnitude range.  The
  777. central display is intended to be similar to a telescopic view.  Descriptions
  778. of each function are keyed to the schematic depiction below:
  779.  
  780.             _____________________________________________
  781.             |Alt-Az  |   | [Alt]               [Az] |   |
  782.             |RA-Dec  | F |                          | A |
  783.             |--------| O |                          | l |
  784.             |Grid    | V |                          | t |
  785.             |--------|   |                          |   |
  786.             |F Mag   |   |                          | / |
  787.             |B Mag   |   |           Sky            |   |
  788.             |--------|   |                          | D |
  789.             |Dots    |   |                          | e |
  790.             |Ecliptic|   |                          | c |
  791.             |Labels  |   |                          |   |
  792.             |--------|   |                          |   |
  793.             |Locate  |   |                          |   |
  794.             |--------|   | [RA]               [Dec] |   |
  795.             |        |___|__________________________|___|
  796.             |        |             Az / RA              |
  797.             |        |__________________________________|
  798.             |        |         Date/Time stamp          |
  799.             |________|__________________________________|
  800.             |   Filter          Close            Help   |
  801.             |___________________________________________|
  802.  
  803. Alt-Az / RA-Dec
  804.     The radio box in the upper left corner selects whether the display
  805.     coordinate system is Altitude-Azimuth or Right Ascension-Declination.
  806.     Whenever the Alt-Az system is used, nothing is displayed that would lie
  807.     below the current horizon (except trails; see note under Sky).
  808.  
  809.     The orientation of the display circle is always without reflections. In
  810.     Alt-Az mode, left, right, up and down as are they would appear to the
  811.     otherwise unaided eye. In RA-Dec mode, up is always celestial north, left
  812.     is always celestial East. The meridian named by the horizontal slider is
  813.     always the line between the center of the field-of-view and the nearest
  814.     pole.
  815.  
  816. Grid
  817.     The toggle button labeled "Grid" controls whether a calibration grid will
  818.     overlay the display. When the grid is displayed, its graduation is displayed
  819.     below the toggle button.
  820.  
  821. F Mag / B Mag
  822.     The two sliders on the left set the brightness range being displayed. Only
  823.     objects that are currently within the selected range will be shown on the
  824.     display. Note that sliding either scale beyond its opposite is not permitted
  825.     but it is permitted to do this by selecting in the slider trough should you
  826.     really want to do this (to turn off all objects).
  827.  
  828.     Note this does not effect trails.
  829.  
  830. Dots
  831.     The toggle on the left labeled "Just Dots" selects how objects are drawn.
  832.  
  833.     When the toggle is pushed in, objects of all types are displayed simply as
  834.     dots.  The diameter of the dots equals the difference between its magnitude
  835.     and the faintest magnitude. In this way the size of the dots can be changed
  836.     as desired.
  837.  
  838.     When the toggle is released, each type of object is displayed with a unique
  839.     schematic symbol. These symbols may be viewed from the Filter menu. In this
  840.     case too the size is proportional to magnitude above the faintest limit.
  841.  
  842.     In either form, the color of the object is displayed according to the value
  843.     established for each basic type in the X resource database.  See the sample
  844.     XEphem.ad resource file for examples of setting object colors.
  845.  
  846. Ecliptic
  847.     The toggle on the left labeled "Ecliptic" selects whether a dotted line is
  848.     drawn along the ecliptic. The ecliptic is the plane of the Earth's orbit
  849.     or, as seen from Earth, the path of the Sun and the approximate path
  850.     of the planets across the sky.
  851.  
  852. Labels
  853.     The toggle on the left labeled "All labels" controls whether the labels
  854.     for all objects are forced on. This does not effect which objects have
  855.     their individual "Persistent label" options on.
  856.  
  857. Locate
  858.     The button labeled "Locate..." will pop up a list of the basic objects and
  859.     the defined user defined objects, if any. Selecting any of these entries
  860.     will place a cross-hair over the object. If the object is not within the
  861.     field of view the object will first be centered, unless Alt-Az mode is 
  862.     currently active and the object is below the horizon. To locate other
  863.     objects use the ObjX/Y menu.
  864.  
  865. FOV
  866.     The left vertically-oriented slider controls the field-of-view of the
  867.     display circle. This can be varied from 1 to 180 degrees.
  868.  
  869. [Alt] [Az] [RA] [Dec]
  870.    The coordinates of the cursor are tracked and displayed across the bottom
  871.    and top of the circular display area as long as it is within the circle and
  872.    the left mouse button is depressed.
  873.  
  874.    NOTE: The values displayed during tracking for the coordinate system
  875.    opposite to the one currently in effect may not agree exactly with
  876.    the values displayed elsewhere by xephem, particularly for close solar
  877.    system objects. To understand why recall that in all these other displays
  878.    xephem computes geocentric RA/Dec and topocentric Alt/Az. Recall further
  879.    that parallax contributes significantly to the difference between these
  880.    points of view and parallax depends on the distance to each particular
  881.    object. Thus, there is no single transformation between these coordinate
  882.    systems that is correct for all objects. During tracking, the transformation
  883.    to the coordinate system opposite to the one in current use by the Sky View
  884.    display is computed without regard to parallax; this is strictly correct
  885.    only for objects very far away. This has the useful result that while in
  886.    RA/Dec coordinate mode the tracking values for Alt/Az may be thought of as
  887.    being geocentric; and while in Alt/Az mode, RA/Dec will be topocentric.
  888.    
  889. Sky
  890.     The center circular area is the sky display of objects. Follows is a
  891.     description of the operations that may be performed in this area using the
  892.     pointer.
  893.  
  894.     If the pointer is placed near a visible object and the third button is
  895.     pushed, a popup will appear. This will present several basic data for the
  896.     object. This data is exactly the same as that which is available in the
  897.     Data Table menu; see it's Help for more information. If a trailed object is
  898.     selected, the data will be as it was at the time the position was created.
  899.     In addition, the popup offers several control operations, as follows:
  900.  
  901.     Selecting "Point" from the popup will center the object in the field of
  902.     view (as well as can be done with the accuracy of the pointing scales
  903.     anyway).
  904.  
  905.     Selecting "Make ObjX/Y" will assign the given object to become ObjX
  906.     or ObjY, depending on which one is currently being displayed in the
  907.     ObjX/Y menu. See the help for the ObjX/Y menu for more information on
  908.     that menu.
  909.  
  910.     Selecting "Leave Trail" will start to accumulate all positions of the
  911.     given object as time is advanced. Each new location will be connected
  912.     with a line to its previous location. The trails remain correct if the
  913.     display coordinate system is changed. Trails may be turned on or off
  914.     without loss of trail information. However, trailing information is
  915.     discarded if trailing is turned off when a new time step is performed.
  916.     If any point in a trail is selected the information displayed is as per
  917.     the object at that time. The fastest way to accumulate trailing
  918.     information is to turn trailing on and pop the menu down while running.
  919.  
  920.     Note that in Alt-Az mode, if an object goes below the horizon the line
  921.     segments of the trail are displayed but not the actual points.
  922.  
  923.     Selecting "Persistent Label" will place the name of the object near it
  924.     on the display. This will remain until the label is turned off. Note
  925.     this option is maintained separately for trailed objects and for
  926.     the untrailed objects; that is, you have independent control over
  927.     labeling for a trailed object and its currently displayed object
  928.     since the latter also always appears in the trailed list.
  929.  
  930.     The coordinates of the cursor are displayed in the corners of the circular
  931.     sky area as long as the cursor is within the central circle and the left
  932.     mouse button is depressed.
  933.  
  934. Alt / Dec
  935.     The right vertically-oriented slider controls one of two axes that
  936.     defines the direction in which the display points. In Alt-Az mode this
  937.     controls altitude and can be varied from 0 to 90 degrees. In RA-Dec mode
  938.     this controls Declination and can be varied from -90 to +90.
  939.  
  940. Az / RA
  941.     The bottom horizontally-oriented slider controls one of two axes that 
  942.     defines the direction in which the display points. In Alt-Az mode this
  943.     controls azimuth and can be varied from 0 to 359 degrees.  Azimuth 0 is
  944.     north and increases eastward. In RA-Dec mode this controls Right Ascension
  945.     and can be varied from 0 to 23.9 hours.
  946.  
  947. Date/Time Stamp
  948.     This displays the date and time for which the display is valid.
  949.  
  950. Filter
  951.     The Filter button along the bottom brings up a menu that controls
  952.     whether classes of objects are displayed. Using the Filter menu, one may
  953.     select which classes of objects are desired. Selecting "Apply" updates
  954.     the sky display according to the desired selection. Selecting "Ok" does
  955.     the same thing but also closes the filter menu.
  956.  
  957.     For reference, the Filter menu also contains the schematic symbol for each
  958.     type of object, and its code when used in a database file.
  959. @Solar System View
  960. This is a graphical representation of the solar system. The Sun is always at
  961. the center of the screen, marked as a plus (+).
  962.  
  963. The three sliders at the edges control the position of the observer. The
  964. vertical slider on the left controls the distance from the sun -- you are
  965. closer as the slider is slid further up. The horizontal slider under the
  966. view controls the heliocentric longitude -- think of it as a rotation about
  967. the central axis. The vertical slider on the right controls the heliocentric
  968. latitude -- your angle above the ecliptic plane.
  969.  
  970. Any feature may be identified by pointing near it and clicking the right
  971. mouse button. This will bring down a temporary popup menu with additional
  972. information until the button is released. The RA/Dec given for the Earth is
  973. that of the sun.  All RA/Dec info displayed is for the epoch as it was set
  974. on the Main menu when the dot was computed.
  975.  
  976. The "Leave trails" option can be used to retain old dots. By turning on the
  977. "Connect dots" option, these dots are connected by line segments. The
  978. fastest way to accumulate lengthy trail operation is to turn on trailing
  979. and run with the menu popped down.
  980.  
  981. The planets may be individually turned on and off, without loss of any
  982. display data associated with them, by using the toggle panel near the
  983. bottom. If ObjX or ObjY are defined and are solar system objects then they
  984. will appear on the display and in the list.
  985.  
  986. The bottom button marked "Stereo" is used to bring up another image of the
  987. solar system from a slightly displaced vantage point. Adjusting your gaze to
  988. fuse the two images together will reveal a 3D image. This effect is most
  989. pronounced if trails have been turned for a significant portion of the
  990. orbits of the objects of interest. This effect was designed primarily to
  991. help visual the orbits of comets.
  992.  
  993. At the bottom of the stereo display is a slider to control the location of
  994. the second vantage point. When the slider is in the center both views are
  995. identical.  Moving the slider to the left will display the scene as though
  996. the viewer has moved such as to move the objects to the left. Objects closer
  997. to the viewer move more. Moving the slider to the right does the same but in
  998. the opposite direction. In this way, you may adjust the stereo effect to be
  999. most comfortable to you, and with or without requiring crossed eyes.
  1000.  
  1001. Closing the main Solar System menu will close both it and the Stereo menu,
  1002. If the Solar System menu is closed while the Stereo menu is on, it will
  1003. reappear when the Solar System menu is reactivated.  if it is up.
  1004. @DataBase menu
  1005. This menu allows you to inspect and modify the collection of objects that
  1006. are currently in memory. These objects form what is referred to as the
  1007. xephem database.
  1008.  
  1009. The top portion of the menu displays a count of each major type of object in
  1010. the database.
  1011.  
  1012. Xephem supports files that contain descriptions of objects. These files may
  1013. be read into memory either adding to the current database or replacing it.
  1014. Enter the name of the desired xephem database file in the text area provided
  1015. then select either "Append" or "Replace", respectively.
  1016.  
  1017. The default database filename may be specified by setting the X resource
  1018. named "XEphem*DBPromptD.textString". The internal default name is
  1019. "ephem.db".  The xephem distribution kit includes a sample ephem.db that
  1020. contains more than 15,000 objects of all types.
  1021.  
  1022. Also available from the author is the entire Smithsonian Astrophysical
  1023. Observatory star list. These have been sorted into ten sky regions. There is
  1024. one file per region. The entire set is some 11MB.
  1025.  
  1026. Follows is a description of the format of these database files. This format
  1027. remains compatible with the "ephem" dumb-terminal version of xephem for
  1028. those interested.
  1029.  
  1030. Note that the "Filter" menu accessible from the "Sky View" menu also includes
  1031. a list of the type codes for each object, for easy reference.
  1032.  
  1033.  Each object occupies one line. Fields are separated with commas. Some fields
  1034.  are further subdivided into subfields with vertical bars (|). Lines
  1035.  beginning with anything other than a-z, A-Z or 0-9 are ignored and may be
  1036.  used for comets. Objects may be in any order.
  1037.  
  1038.  Where they appear, all date fields may be in either of two forms:
  1039.  
  1040.    1) month/day/year, where day may contain a trailing decimal portion.
  1041.      examples: 1/1/1993 and 1/1.234/1993
  1042.      NOTE: this is always the format of dates in database files, regardless of
  1043.      the current xephem run-time Data format preference setting.
  1044.  
  1045.    2) a real-number, such as 1993.123.
  1046.  
  1047.  The first two fields are always Name and Type. Remaining fields depend on the
  1048.  form of the object's motion.
  1049.  
  1050.  The Name field is the object's name.
  1051.  
  1052.  The Type field always starts with a single letter designating the form of
  1053.  the object's motion:
  1054.    f: fixed (no proper motion)
  1055.    e: heliocentric elliptical orbit
  1056.    h: heliocentric hyperbolic orbit
  1057.    p: heliocentric parabolic orbit
  1058.  
  1059.    if "Type" is fixed, an object class code may follow in the next subfield:
  1060.        C: Cluster, globular
  1061.        U: Cluster, with nebulosity
  1062.        O: Cluster, open
  1063.        G: Galaxy, spiral
  1064.        H: Galaxy, spherical
  1065.        A: Cluster of galaxies
  1066.        N: Nebula, bright
  1067.        F: Nebula, diffuse
  1068.        K: Nebula, dark
  1069.        P: Nebula, planetary
  1070.        Q: Quasar
  1071.        T: stellar object
  1072.        B: Star, binary
  1073.        D: Star, double
  1074.        M: Star, multiple
  1075.        S: Star
  1076.        V: Star, variable
  1077.  
  1078.    if class is one of T, B, D, S or V, the spectral class and possibly the
  1079.    numerical subclass designation may follow in the next subfield:
  1080.        O, B, A, F, G, K, M, N, C, S
  1081.  
  1082.  For other object types, the remaining fields are defined as follows:
  1083.  
  1084.  elliptical format (e < 1):
  1085.     i = inclination, degrees
  1086.     O = longitude of ascending node, degrees
  1087.     o = argument of perihelion, degrees
  1088.     a = mean distance (aka semi-major axis), AU
  1089.     n = mean daily motion, degrees per day (computed from a**3/2 if omitted)
  1090.     e = eccentricity,
  1091.     M = mean anomaly (ie, degrees from perihelion),
  1092.     E = epoch date (ie, time of M),
  1093.     D = the equinox year (ie, time of i/O/o).
  1094.     g/k or H/G = magnitude model; select which by preceding the first field
  1095.         with either a "g" or an "H"; H/G is the default if neither is given.
  1096.     s = angular size at 1 AU, arc seconds, optional
  1097.  
  1098.  hyperbolic format (e > 1):
  1099.     T = epoch of perihelion
  1100.     i = inclination, degrees
  1101.     O = longitude of ascending node, degrees
  1102.     o = argument of perihelion, degrees
  1103.     e = eccentricity,
  1104.     q = perihelion distance, AU
  1105.     D = the equinox year (ie, time of i/O/o).
  1106.     g/k = magnitude model
  1107.     s = angular size at 1 AU, arc seconds, optional
  1108.  
  1109.  parabolic format (e == 1):
  1110.     T = epoch of perihelion
  1111.     i = inclination, degrees
  1112.     o = argument of perihelion, degrees
  1113.     q = perihelion distance, AU
  1114.     O = longitude of ascending node, degrees
  1115.     D = the equinox year (ie, time of i/O/o).
  1116.     g/k = magnitude model
  1117.     s = angular size at 1 AU, arc seconds, optional
  1118.  
  1119.  fixed format:
  1120.     RA, hours
  1121.     Declination, degrees
  1122.     magnitude
  1123.     reference epoch
  1124.     s = angular size, arc minutes, optional
  1125. @Object
  1126. Xephem supports two user-defined objects, denoted ObjX and ObjY. These may
  1127. be fixed objects or objects in elliptical, hyperbolic or parabolic
  1128. heliocentric orbits. The ObjX/Y dialog allows you to define these objects.
  1129.  
  1130. Xephem maintains a working copy of these objects for use with the ObjX/Y
  1131. menu that is separate from the real ObjX and ObjY. The ObjX/Y menu always
  1132. works on these working copies. The working copies and the real ObjX/Y only
  1133. interact when using the Ok, Apply and Reset control, as described shortly.
  1134.  
  1135. The ObjX/Y menu is always displaying information from one or the other of
  1136. these working copies as indicated by the small radio box in the center of
  1137. the menu at the top. This box may also be used to changed whether ObjX or
  1138. ObjY is being displayed and manipulated. We will refer to the one selected
  1139. as the "current working object."
  1140.  
  1141. The radio box in the upper left displays the basic type of the current
  1142. working object. This can be changed by selecting another of the collection
  1143. of toggle buttons.
  1144.  
  1145. In the left and center of the menu is an area that lists each field for the
  1146. current working object and its present value. The list is adjusted to
  1147. correspond to the fields that are associated with the type of the current
  1148. working object. These fields may be changed by selecting the button that
  1149. contains their value. This will bring up a small text entry dialog. A new
  1150. entry may be typed into the dialog box and applied by hitting RETURN or
  1151. selecting the "Ok" button. The value may be left unchanged by selecting
  1152. "Cancel".
  1153.  
  1154. Along the right edge of the ObjX/Y menu is a list of each object currently
  1155. loaded into the xephem database. (See the Help for the "Data Base" menu for
  1156. more information on manipulating this data base.) If there are more than 20
  1157. items then a scroll bar may be used to browse through the list. The entries
  1158. are sorted in numeric and alphabetic order for easy selection.  If one of
  1159. these objects is selected, then it is copied to the current working object.
  1160. You may then further edit the values for this working object as desired.
  1161.  
  1162. When the current working object is as you want it, select "Apply" to copy it
  1163. the real ObjX (or ObjY) used throughout the other functions of xephem. "Ok"
  1164. will do the same thing and also close the ObjX/Y menu.
  1165.  
  1166. Selecting "Reset" will load the current working object with a copy of the
  1167. real ObjX (or ObjY).
  1168.  
  1169. Selecting "Sky Point" will move the center of the field of view on the "Sky
  1170. View" menu so that the current working object is centered and a cross-hair
  1171. is drawn over the object. This change in pointing direction and marking will
  1172. take place even if the object is not in the Sky View type filter or within
  1173. the magnitude range. Note that the Sky View display will _not_ be changed if
  1174. it is set to Alt-Az mode and the current working object is below the
  1175. horizon.
  1176.  
  1177. Selecting "Sky Mark" will draw a cross-hair on the Sky View menu at the
  1178. location of the current working object if it is within the Sky View field of
  1179. view. The Sky View menu is never reaimed with this command.
  1180.  
  1181. Follows is a description of each field for the type of the current working
  1182. object. To get a description of the fields for other types of objects,
  1183. change the type of the current working object and reselect Help.
  1184.  
  1185. @Fixed Object
  1186. +Object
  1187. Fixed objects are characterized by five parameters:
  1188.  
  1189.     RA,
  1190.     Dec,
  1191.     magnitude,
  1192.     the reference epoch for the coordinates and
  1193.     angular size in arc seconds, optional
  1194.  
  1195. Note:
  1196.  
  1197. In order to conserve memory usage, xephem stores the RA and Dec for a fixed
  1198. object only once with each object. These values are always precessed _in
  1199. place_ to the current display epoch. Thus, you will find that the RA and Dec
  1200. displayed for a given object may change if the epoch is changed on the main
  1201. menu and the object information is redisplayed here on the ObjX/Y menu.
  1202. @Elliptical Object
  1203. +Object
  1204. Elliptical objects are characterized by 12 parameters: the parameters that
  1205. define a heliocentric elliptic orbit and the coefficients for either of two
  1206. magnitude models.  These elements are the same ones often listed in the
  1207. Astronomical Almanac.  The elements are, in order:
  1208.  
  1209.     i = inclination, degrees
  1210.     O = longitude of ascending node, degrees
  1211.     o = argument of perihelion, degrees
  1212.     a = mean distance (aka semi-major axis), AU
  1213.     n = mean daily motion, degrees per day
  1214.     e = eccentricity
  1215.     M = mean anomaly (ie, degrees from perihelion)
  1216.     E = epoch date (ie, time of M)
  1217.     D = the equinox year (ie, time of i/O/o)
  1218.     g/k or H/G  = either of two magnitude models; see below
  1219.     s = angular size at 1 AU, arc seconds, optional
  1220.  
  1221.  
  1222. You might have other parameters available that can be converted into these. 
  1223. The following relationships might be useful:
  1224.  
  1225.     P = sqrt(a*a*a)
  1226.     p = O + o
  1227.     n = 0.9856076686/P
  1228.     T = E - M/n
  1229.     q = a*(1-e)
  1230.     AU = 149,597,870 km = 92,955,621 U.S. statute miles
  1231.  where
  1232.     P = the orbital period, years;
  1233.     p = longitude of perihelion, degrees
  1234.     T = epoch of perihelion (add multiples of P for desired range)
  1235.     q = perihelion distance, AU
  1236.  
  1237. Note that if you know T you can then set E = T and M = 0.
  1238.  
  1239. Xephem supports two different magnitude models for elliptical objects. One,
  1240. denoted here as g/k, is generally used for comets in elliptical objects. The
  1241. other, denoted H/G, is generally used for asteroids in the Astronomical
  1242. Almanac.
  1243.  
  1244. +OBJXY_gkMAGNITUDE
  1245. When using this model for elliptical objects, the first of the two magnitude
  1246. fields must be preceded by a letter "g". This applies in both the ephem.db
  1247. database file and the corresponding menu elliptical object definition prompt;
  1248. otherwise the default magnitude model for elliptical objects is the H/G model.
  1249.  
  1250. +OBJXY_HGMAGNITUDE
  1251.  
  1252. The H/G model is the default magnitude model for elliptical objects but it can
  1253. also be explicitly indicated when the first of the two magnitude fields is
  1254. preceded by a letter "H". This works in both the ephem.db database file and the
  1255. corresponding menu elliptical object definition prompt.
  1256. @Hyperbolic Object
  1257. +Object
  1258. Hyperbolic objects are characterized by 10 parameters: the parameters that
  1259. define a heliocentric hyperbolic orbit and the magnitude model coefficients. 
  1260. These orbital parameters are, in order:
  1261.  
  1262.     T = epoch of perihelion
  1263.     i = inclination, degrees
  1264.     O = longitude of ascending node, degrees
  1265.     o = argument of perihelion, degrees
  1266.     e = eccentricity,
  1267.     q = perihelion distance, AU
  1268.     D = the equinox year (ie, time of i/O/o).
  1269.     g/k = magnitude model
  1270.     s = angular size at 1 AU, arc seconds, optional
  1271.  
  1272. As with elliptical elements, other parameters might be available.  The
  1273. relationships are generally the same, except for:
  1274.  
  1275.     q = a*(e-1)
  1276.  
  1277. +OBJXY_gkMAGNITUDE
  1278. @Parabolic Object
  1279. +Object
  1280. Parabolic objects are characterized by 9 parameters: the parameters that
  1281. define a heliocentric parabolic orbit and the magnitude model coefficients.
  1282. These orbital parameters are, in order:
  1283.  
  1284.     T = epoch of perihelion
  1285.     i = inclination, degrees
  1286.     o = argument of perihelion, degrees
  1287.     q = perihelion distance, AU
  1288.     O = longitude of ascending node, degrees
  1289.     D = the equinox year (ie, time of i/O/o).
  1290.     g/k = magnitude model
  1291.     s = angular size at 1 AU, arc seconds, optional
  1292.  
  1293. +OBJXY_gkMAGNITUDE
  1294. @OBJXY_gkMAGNITUDE
  1295. The g/k magnitude model requires two parameters to be specified. One, the
  1296. absolute magnitude, g, is the visual magnitude of the object if it were one
  1297. AU from both the sun and the earth.  The other, the luminosity index, k,
  1298. characterizes the brightness change of the object as a function of its
  1299. distance from the sun. This is generally zero, or very small, for inactive
  1300. objects like asteroids.  The model may be expressed as:
  1301.  
  1302.     m = g + 5*log10(D) + 2.5*k*log10(r)
  1303.  where:
  1304.     m = resulting visual magnitude;
  1305.     g = absolute visual magnitude;
  1306.     D = comet-earth distance, in AU;
  1307.     k = luminosity index; and
  1308.     r = comet-sun distance.
  1309.  
  1310. Note that this model does not take into account the phase angle of sunlight.
  1311.  
  1312. @OBJXY_HGMAGNITUDE
  1313. The H/G model also requires two parameters. The first, H, is the magnitude of
  1314. the object when one AU from the sun and the earth. The other, G, attempts to
  1315. model the reflection characteristics of a passive surface, such as an
  1316. asteroid. The model may be expressed with the following code fragment:
  1317.  
  1318.     beta = acos((rp*rp + rho*rho - rsn*rsn)/ (2*rp*rho));
  1319.     psi_t = exp(log(tan(beta/2.0))*0.63);
  1320.     Psi_1 = exp(-3.33*psi_t);
  1321.     psi_t = exp(log(tan(beta/2.0))*1.22);
  1322.     Psi_2 = exp(-1.87*psi_t);
  1323.     m = H + 5.0*log10(rp*rho) - 2.5*log10((1-G)*Psi_1 + G*Psi_2);
  1324.  where:
  1325.     m   = resulting visual magnitude
  1326.     rp  = distance from sun to object
  1327.     rho = distance from earth to object
  1328.     rsn = distance from sun to earth
  1329.  
  1330. Note that this model does not take into account the phase angle of sunlight.
  1331.